home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs66.d81 / selfmod.seq (.txt) < prev    next >
GEOS ConVerT  |  2009-10-10  |  6KB  |  143 lines

  1. PRG formatted GEOS file V1.0
  2. LA-50
  3. MA2Stage
  4. BLASTER'S CONVERTER V2.5
  5. ,'MA2RunDA
  6. Write Image V2.1
  7. geoWrite    V2.1
  8.     This source file was written by
  9. Joseph Buckley.
  10.     You are free to use this code in
  11. your own programs and to modify it to suit your
  12. programming needs.
  13.     For more information contact:
  14.     Joseph Buckley
  15.     464 Beale St.
  16.     W. Quincy, MA 02169-1307
  17.     Red Storm via Quantum Link
  18.     71570,2600 via CompuServe
  19.     (GEOS Section Leader, CBMPRG forum)
  20. ;   Date Stamp is a small GEOS Autoexecuting
  21. ; application which will write the system time
  22. ; and date du
  23. ;   Date Stamp is a small GEOS Autoexecuting
  24. ; application which will write the system time
  25. ; and date during the normal GEOS booting
  26. ; sequence.
  27. ;   Presetting the time and date information is
  28. ; accomplished via opening the program from the
  29. ; GEOS deskTop as you would any normal
  30. ; application file.
  31. .if    Pass1
  32. .include    geosSym
  33. .include    geosMac
  34. .endif
  35. ProgStart:
  36.     lda    firstBoot
  37. ;   Check the system variable 'firstBoot' to
  38. ; see if the GEOS system is being booted from
  39. ; a cold start.
  40. ;   'firstBoot' contains $00 until the deskTop
  41. ; is first run.  This indicates a cold boot.
  42. ;   Once the deskTop has been run, 'firstBoot'
  43. ; contains $ff until the deskTop.
  44.     beq    1$
  45.     jmp    GrabDate
  46. ;   If not a booting situation, then merely
  47. ; copy current system time and date to this
  48. ; file.
  49. 1$    jmp    SetDate
  50. ;   On a cold boot, set the system time and
  51. ; date to the preset values within this file.
  52. .byte    89,8,29,9,00,0
  53. ;   Storage for system time and date.
  54. GrabDate:
  55. ;   Write system time and date to the disk
  56. ; based copy of this program.
  57.     LoadW    r6,FileName    ; buffer for name of disk based copy
  58.     LoadB    r7L,AUTO_EXEC    ; GEOS file type of disk based copy
  59.     LoadB    r7H,1    ; you only want first file found
  60.     LoadW    r10,PrmString    ; the 'Permanent Name String', or
  61. ;              Class of the disk file
  62.     jsr    FindFTypes    ; hunt for the disk file name
  63. ;   This code fragment allows you to change the
  64. ; name of the file on disk and still allow you
  65. ; to find it via the 'Class' string in the
  66. ; Information data block of the file.
  67.     LoadW    r6,FileName    ; we now know the disk file's name
  68.     jsr    FindFile    ; get the file's directory entry
  69.     MoveW    dirEntryBuf+$01,r1    ; copy the Track & Sector
  70. ;              pointer to read its first block
  71.     LoadW    r4,$1000    ; data buffer for disk block
  72.     jsr    GetBlock    ; read the file's first block
  73.     jsr    i_MoveData    ; copy the year, month and day
  74. ;              from GEOS system RAM to the
  75. ;              proper byte positions within
  76. ;              the data buffer.
  77. .word    year
  78. .word    $100d
  79. .word    $0003
  80.     jsr    InitForIO    ; swap in the system I/O block
  81.     MoveB    cia1base+$0b,$1010    ; read the current hour,
  82.     MoveB    cia1base+$0a,$1011    ; minute,
  83.     MoveB    cia1base+$09,$1012    ; and second and write them to
  84. ;              the data buffer
  85.     ClrB    cia1base+$08    ; restart CIA clock after read
  86.     jsr    DoneWithIO    ; return to normal GEOS map
  87.     MoveW    dirEntryBuf+$01,r1    ; copy the Track & Sector
  88. ;              pointer to write its first block
  89.     LoadW    r4,$1000    ; data buffer for disk block
  90.     jsr    PutBlock    ; wrte the file's first block with
  91. ;              the new date and time data
  92.     jmp    EnterDeskTop    ; done, return to deskTop
  93. SetDate:
  94. ;   Read system time and date from the disk
  95. ; based copy of this program.
  96.     LoadW    r6,FileN
  97. SetDate:
  98. ;   Read system time and date from the disk
  99. ; based copy of this program.
  100.     LoadW    r6,FileName    ; buffer for name of disk based copy
  101.     LoadB    r7L,AUTO_EXEC    ; GEOS file type of disk based copy
  102.     LoadB    r7H,1    ; you only want first file found
  103.     LoadW    r10,PrmString    ; the 'Permanent Name String', or
  104. ;              Class of the disk file
  105.     jsr    FindFTypes    ; hunt for the disk file name
  106. ;   This code fragment allows you to change the
  107. ; name of the file on disk and still allow you
  108. ; to find it via the 'Class' string in the
  109. ; Information data block of the file.
  110.     LoadW    r6,FileName    ; we now know the disk file's name
  111.     jsr    FindFile    ; get the file's directory entry
  112.     MoveW    dirEntryBuf+$01,r1    ; copy the Track & Sector
  113. ;              pointer to read its first block
  114.     LoadW    r4,$1000    ; data buffer for disk block
  115.     jsr    GetBlock    ; read the file's first block
  116.     jsr    i_MoveData    ; copy the year, month and day
  117. ;              from the proper byte positions
  118. ;              within the data buffer to GEOS
  119. ;              system RAM.
  120. .word    $100d
  121. .word    year
  122. .word    $0003
  123.     jsr    InitForIO    ; swap in the system I/O block
  124.     MoveB    $1010,cia1base+$0b    ; read the old hour,
  125.     MoveB    $1011,cia1base+$0a    ; minute,
  126.     MoveB    $1012,cia1base+$09    ; and second and write them to
  127. ;              the CIA chip
  128.     ClrB    cia1base+$08    ; restart CIA clock after read
  129.     jsr    DoneWithIO    ; return to normal GEOS map
  130.     jmp    EnterDeskTop
  131.     ; done, return to deskTop
  132. PrmString:
  133. .byte    "Date Set    V0.0",0
  134. ;   This is the 'Permanent Name String', or
  135. ; Class of the disk file we wish to read/write.
  136. FileName:
  137. .block    $12
  138. ;   This is a small buffer to hold the name of
  139. ; the program we found via the Class string.
  140. ProgEnd:
  141. ;   End of program.
  142. ;   End of Assembly file.
  143.